/* @flow */

import { inBrowser } from 'core/util/index'

// check whether current browser encodes a char inside attribute values
// 该方法用于检测浏览器在使用innerHTML时，是否会对html特性的值中的特殊字符进行编码，比如html特性的值中存在'\n'字符，
// 对于ie浏览器来说，在通过innerHTML获取该特性值时，会对'\n'进行编码并返回'&#10;'，而对于其他浏览器，则
// 会直接返回'\n'字符串的表现形式，也就是换行。
function shouldDecode (content: string, encoded: string): boolean {
  const div = document.createElement('div')
  div.innerHTML = `<div a="${content}"/>`
  return div.innerHTML.indexOf(encoded) > 0
}

// #3663
// IE encodes newlines inside attribute values while other browsers don't
export const shouldDecodeNewlines = inBrowser ? shouldDecode('\n', '&#10;') : false
